/*
为什么要慎用
1.全局变量定义在全局执行上下文，是所有作用链的顶端
2.全局执行上下文一直存在于上下文执行栈，直到程序退出
3.如果某个局部作用域出现了同名变量则会遮蔽或者污染全局

*/
// 方案一
var i, str = ''
for (let i = 0; i < 1000; i++) {
    str += i
}

// 方案二
for (let i = 0; i < 1000; i++) {
    let str = ''
    str += i
}


// 通过https://jsbench.me结论：执行效率方案二高于方案一